package org.dxy.trigger.http.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dxy.api.dto.request.productionLine.CreateProductionLineRequestDto;
import org.dxy.api.dto.request.productionLine.UpdateProductionLineRequestDto;
import org.dxy.api.response.R;
import org.dxy.infrastructure.persistent.db.mybatispuls.po.query.ProductionLineBasicViewPo;

import java.util.List;

/**
 * 产线应用服务接口
 */
public interface ProductionLineApplicationService {
    /**
     * 创建产线
     * @param dto 包含产线创建信息的请求DTO
     * @return 返回操作结果
     */
    R<Void> createProductionLine(CreateProductionLineRequestDto dto);

    /**
     * 分页查询产线列表
     * @param page 分页参数
     * @param query 查询条件
     * @return 分页结果
     */
    R<Page<ProductionLineBasicViewPo>> list(Page<ProductionLineBasicViewPo> page, ProductionLineBasicViewPo query);

    /**
     * 更新产线信息
     * @param id 产线ID
     * @param dto 更新信息
     * @return 返回操作结果
     */
    R<Void> update(Long id, UpdateProductionLineRequestDto dto);

    /**
     * 删除产线
     * @param id 产线ID
     * @return 返回操作结果
     */
    R<Void> delete(Long id);

    /**
     * 批量删除产线
     * @param ids 产线ID列表
     * @return 返回操作结果
     */
    R<Void> batchDelete(List<Long> ids);
    
    
    /**
     * @description  
     * @param 	
     * @return 	
     * @date: 2025/9/4 22:17
     * @auther dxy
     */
    R<ProductionLineBasicViewPo> getById(Long id);

    /**
     * 获取启用状态的产线列表
     * @return 启用状态的产线列表
     */
    R<List<ProductionLineBasicViewPo>> getEnabledProductionLines();
}
